Methods for searching for SAM patterns at multiple nominal frequencies

ABSTRACT

Methods are provided for improving servo-demodulation robustness, especially when used with a disk having zone bit recorded servo wedges. A servo address mark (SAM) pattern is searched for, within a servo wedge, at a first nominal frequency useful for searching for the SAM pattern if the servo wedge is within a first zone. The SAM pattern is also searched for, within the same servo wedge, at a second nominal frequency useful for searching for the SAM pattern if the servo wedge is within the second zone. A determination of which one of two zones a head is reading, can then based at least in part on which nominal frequency was used to successfully detect the SAM pattern.

CROSS REFERENCE TO RELATED APPLICATIONS

This application relates to the following commonly invented and commonlyassigned applications, each of which was filed on Apr. 14, 2003: U.S.patent application Ser. No. 10/413,316 entitled “Systems for ImprovingServo Demodulation Robustness”; U.S. patent application Ser. No.10/412,853 entitled “Systems for Detecting Multiple Occurrences of a SAMPattern to Thereby Inprove Servo-Demodulation Robustness”; U.S. patentapplication Ser. No. 10/413,194 entitled “Systems for Preventing ChannelControl Values from being Corrupted to thereby ImproveServo-Demodulation Robustness”; U.S. patent application Ser. No.10/413,338 entitled “Methods for Improving Servo-DemodulationRobustness”; U.S. patent application Ser. No. 10/413,043 entitled“Methods for Detecting Multiple Occurrences of a SAM Pattern to TherebyImprove Servo-Demodulation Robustness”; and U.S. patent application ser.No. 10/413,339 entitled “Methods for Preventing Channel Control Valuesfrom being Corrupted to Thereby Improve Servo-Demodulation Robustness.”

This application also relates to the following commonly invented andcommonly assigned applications, each of which was filed on the same dateas the present application: U.S. patent application Ser. No. 10/621,048entitled “Systems for Searching for SAM Patterns at Multiple NominalFrequencies”; U.S. patent application Ser. No. 10/620,818 entitled“Servo Demodulator Systems including Multiple Servo Demodulators”; andU.S. patent application Ser. No. 10/620,971 entitled “Methods forSearching for SAM Patterns using Multiple Sets of Servo DemodulationDetection Parameters.”

FIELD OF THE INVENTION

This invention relates to disk drives, and more particularly toimproving servo demodulation robustness.

BACKGROUND

Disk drives typically include one or more disks that define amultiplicity of concentric data tracks. Head position control systemsare typically used to move a transducer (head) from a departure track toa destination track location during track seeking operations, to settlethe head at the vicinity of the destination track during track settlingoperations, and to follow the read or write centerline of thedestination track during track following operations when datainformation is written on or read from the disk.

Servo head position information is typically embedded within servowedges on a disk, which are usually recorded in evenly spaced apartareas or sectors of a track. The embedded servo wedges includes servohead position and track/data identification fields, and typicallyinclude a recognizable servo address mark (SAM) pattern which isprovided to resynchronize timers for recovering the servo head positionand the track/data identification field information, and which mark intime an expected arrival of the next embedded servo wedge. SAM patterns(often simply referred to hereafter as SAMs), in the past, were intendedto be unique from patterns that may appear in data or in other portionsof a servo wedge. However, that is no longer the case, and patternsequivalent to a SAM may appear in data or in other parts of a servowedge. Further, a demodulated signal may include a pattern thatresembles a SAM pattern because of noise or flaws on the disk media.

Conventionally, a servo demodulator determines when or where to startsearching for a SAM pattern by timing from the most recent SAM that wasdetected. Typically, the servo demodulator searches for the SAM during atiming window, that is centered a pre-determined (SAM-to-SAM) time afterthe most recently detected SAM, with a width equal to a specifiedtiming-variation tolerance. If the SAM is not detected within thewindow, then the timing of the search for the next SAM is determined by“free-wheeling,” based upon the last SAM that was actually demodulated.When the next SAM is detected (i.e., the SAM following a missing SAM),the timing circuitry is re-set to begin looking for the following SAMbased upon the timing of the SAM just detected. This conventional schemecan typically get though at least one missing SAM, and detect the nextSAM (which is hopefully good, and can be detected). However, the servodemodulator may inadvertently detect a SAM pattern in the wrong place.This may occur, for example, because another portion of the servo wedgeis substantially identical to the SAM (or due to noise, or media orsignal corruption, appears substantially identical to the SAM). If thisoccurs, the demodulator will begin to search for the next SAM at thewrong time or place. In this manner, a single bad SAM detection couldcause the servo demodulator to completely lose lock, adversely affectingthe performance of the disk drive. There is a need to decrease, andhopefully prevent, the servo demodulator from losing lock.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a plan view showing exemplary data and servo patterns on astorage disk;

FIG. 2 is an illustration of servo and data fields within a track of thedisk shown in FIG. 1;

FIG. 3 is an illustration of exemplary subpart fields within a servofield shown in FIG. 2;

FIG. 4 is a high level diagram of an exemplary disk drive device, whichcan implement embodiments of the present invention;

FIG. 5 is a high level diagram showing exemplary portions of theread/write path and the servo field detector of FIG. 4;

FIG. 6 is a timer value vs. time graph that is useful for explainingfreewheeling;

FIG. 7 is a timer value vs. time graph that is useful for explainingembodiments of the present invention where a SAM search window isadjusted;

FIG. 8 is a timer value vs. time graph that is useful for explainingembodiments of the present invention wherein a timer is adjusted;

FIG. 9 is a high level flow diagram that summarizes various embodimentsof the present invention in which a detection of a SAM pattern ischaracterized as a good or a bad SAM detection;

FIG. 10 is a high level flow diagram that summarizes various embodimentsof the present invention that search for multiple occurrences of a SAMpattern in a single servo wedge; and

FIGS. 11A and 11B are high level flow diagrams that summarize variousembodiments of the present invention in which characterizations of SAMpattern detections are used to decide which channel control values touse when beginning to demodulate a next servo wedge.

FIG. 12 is a plan view of an exemplary rotatable storage disk that iszone bit recorded.

FIG. 13 is a high level diagram of an exemplary disk drive device, thatcan be used with one or more disks that include zone bit recorded servowedges, to implement embodiments of the present invention.

DETAILED DESCRIPTION

According to embodiments of the present invention, servo demodulatoroutputs (e.g., SAM patterns, track numbers and/or burst values, etc.)are checked for “sanity.” If the demodulation output appears bad (e.g.,does not resemble a predicted or expected output), the servo demodulatortiming circuitry can be re-programmed to search for the next SAM basedupon the timing of a previous (e.g., the most recently detected) SAMpattern detection that met the sanity check. This way, a single bad SAMdetection will not cause the servo demodulator to lose lock.

Systems and methods are provided for using servo address mark (SAM)pattern detections to improve servo-demodulation robustness. SAM patterndetections are characterized as either good SAM detections or bad SAMdetections. Further servo functions are then based on whether thedetection of the SAM pattern in a servo wedge was characterized as agood SAM detection or characterized as a bad SAM detection.

In accordance with embodiments of the present invention, multipleoccurrences of the SAM pattern are searched for in a single servo wedge.Each detection of the SAM pattern in the servo wedge is characterized asa good SAM detection or a bad SAM detection. If more than one detectionof the SAM pattern in the servo wedge are characterized as good SAMdetections, one of the detections is selected as the best good SAMdetection. Further servo functions can then be performed based on thebest good SAM detection.

In accordance with embodiments of the present invention, the SAM patternis searched for in a servo wedge. If the SAM pattern is detected in thefirst servo wedge, one or more channel control values (e.g., servo AGCand/or PLL values) associated with the first servo wedge are stored, anda determination is made whether to characterize the detection of the SAMpattern as either a good SAM detection or a bad SAM detection. If thedetection of the SAM pattern is characterized as a good SAM detection,then the just stored channel control values are used as starting valueswhen beginning to read a next servo wedge. However, if the SAM patternis not detected, or a detection is characterized as bad, one or morepreviously stored or predicted channel control values are used asstarting values when beginning to read the next servo wedge.

Further embodiments, features, aspects, and advantages of the presentinvention will become more apparent from the additional description setforth below, the drawings and the claims.

Exemplary Disk

Before describing the various embodiments of the present invention, itis useful to first explain an exemplary disk drive system that storesinformation on rotatable storage disks. FIG. 1 is a plan view of anexemplary rotatable storage disk 110. The disk 110 includes a centralopening 112 to enable a rotating hub to securely clamp the disk to adisk spindle. Between an inner area 114 and an outer peripheral area116, a data storage area of a multiplicity of concentric data tracks isdefined. The tracks are arranged into multiple data zones 118 (alsoknown as data fields or user data fields), from a radially outermostdata zone 118 to a radially innermost data zone 118. A systeminformation region and a diagnostics and guard region typically liesnear the inner diameter and/or outer diameter of the disk 110, outsidethe data storage area.

FIG. 1 also depicts a series of radially extending servo sectors 138(also known as servo fields or servo wedges). The radial servo sectors138 (shown as several narrow spokes in FIG. 1, but are typicallysomewhat curved) are typically equally spaced around the circumferenceof the disk 110. While the number of data sectors in each zone varies,it is apparent from inspection of FIG. 1 that the number of embeddedservo wedges 138 remains invariant throughout the extent of the storagesurface. As each data sector is of fixed storage capacity or length(e.g. 512 bytes of user data per data sector), and since the density anddata rates vary from data zone to data zone, the servo sectors 138interrupt and split up at least some of the data sectors or fields. Theservo sectors 138 are typically recorded with a servo writing apparatusat the factory, but may be written (or partially written) by aself-servowriting operation.

The number and scale of the various data zones 118 and servo wedges 138shown in FIG. 1 are not precise. For example, there is likely more datazones 118 and servo wedges 138 than shown. Further, the servo wedges 138likely take up less area on the disk 110 than shown.

Exemplary Servo Wedge

FIG. 2 illustrates the repeating of servo fields 138 and data fields 118in a track. Each servo field 138 is physically associated with theimmediately following data fields 118, as determined by the direction ofrotation of the disk 110 relative to a head. A plurality of servo fields138 and data fields 118 are recorded on each track. The number of trackson each disk is usually relatively high (e.g., greater than twothousand).

Each servo wedge 138 is formed by a number of subpart fields as shown inFIG. 3. Each servo wedge 138 typically includes a preamble 302, a servoaddress mark (“SAM”) 304, a wedge number 306, a track number code 308and a number of off-track bursts 310, typically four. The order in whichthese subpart fields occur is sometimes changed. Also, there maybeadditional and/or different subpart fields, which are not shown in thisexample.

The preamble 302 is a series of magnetic transitions which representsthe start of the servo field 138. A signal produced while reading thepreamble 302 can be used to adjust an automatic gain control (AGC)and/or a phase lock loop (PLL) of a servo demodulator, to allowdemodulation of the rest of the servo wedge 138. The SAM 304, whichspecifies the beginning of available information from the servo wedge138, is typically used to resynchronize timer(s) for recovering theservo head position and the track/data identification field information,and to mark in time the expected arrival of the next servo wedge 138. Itis noted that some disk drive companies refer to the SAM pattern as aservo synchronization mark (SSM). Thus, the term SSM may be substitutedfor the term SAM, as used herein.

The wedge number 306 (which may simply be an index mark), is used tocount the number of servo fields in each track when the disk 110 isrotating. A different wedge number can uniquely identify each servowedge. Alternatively, if the wedge number is simply an index mark, thewedge number can be, for example, a data bit “one” for an index servowedge, and a data bit “zero” for all other servo wedges. The term wedgenumber is also meant to cover other numbers or marks that are used toindicate the rotational position of a disk, relative to a head.

The track number 308, which is usually gray coded, is used for uniquelyidentifying each track. The off-track bursts 310 (pictoriallyrepresented as A, B, C and D) are employed to control the finepositioning of a read/write head relative to the tracks. In general, thesubpart fields 302–310 that form the servo wedge 138 contain controlinformation that is used for servo control to achieve proper operationof a head disk assembly (HDA) of a disk drive storage device.

Exemplary Disk Drive Device

FIG. 4 is a high level diagram of an exemplary disk drive storage device402. Referring to FIG. 4, the disk drive device 402 is shown asincluding a head disk assembly (HDA) 406, a hard disk controller (HDC)408, a read/write channel 413, a microprocessor 410, a motor driver 422and a buffer 424. The read/write channel 413 is shown as including aread/write path 412 and a servo demodulator 404. The read/write path412, which can be used to read and write user data and servo data, mayinclude front end circuitry useful for servo demodulation. Theread/write path 412 may also be used for writing servo information inself-servowriting. Additional details of the read/write path 412 and theservo demodulator 404 are discussed below with reference to FIG. 5. Oneof ordinary skill in the art will appreciate that the drive 402 includesadditional components, which are not shown because they are notnecessary to explain the embodiments of the present invention.

The HDA 406 includes one or more disks 110 upon which data and servoinformation can be written to, or read from, by transducers 414, oftenreferred to as heads 414. A spindle motor (SM) 416 rotates the disks 110with respect to the heads 414. A voice coil motor (VCM) 418 moves anactuator 420 to position the heads 414 on the disks 110. The motordriver 422 drives the VCM 418 and the SM 416. More specifically, themicroprocessor 410, using the motor driver 422, controls the VCM 418 andthe actuator 420 to accurately position the heads 414 over the tracks(described with reference to FIGS. 1–3) so that reliable reading andwriting of data can be achieved. The servo fields 138, discussed abovein the description of FIGS. 1–3, are used for servo control to keep theheads 414 on track and to assist with identifying proper locations onthe disks 110 where data is written to or read from. When reading aservo wedge 138, the heads 414 act as sensors that detect the positioninformation in the servo wedges 138, to provide feedback for properpositioning of the heads 414.

Among other functions, the HDC 408 enables the disk drive device 402 tocommunicate with a host computer (e.g., a personal computer or webserver). For example, the HDC 408 may control the transfer of user data(as opposed to servo data) between the read/write path 412 and the hostcomputer. The HDC 404 will most likely use the buffer 424 whenperforming such transfers. The read/write path 412 includes electroniccircuits used in the process of writing and reading information to andfrom disks 110. The microprocessor 410, which can be a micro-controller,includes firmware that can be used to perform various embodiments of thepresent invention. The microprocessor 410 can also perform servo controlalgorithms, and thus, may be referred to as a servo controller.Alternatively, a separate microprocessor or digital signal processor(not shown) can perform servo control functions.

The servo demodulator 404 is shown as including a servo phase lockedloop (PLL) 426, a servo automatic gain control (AGC) 428, a servo fielddetector 430 and register space 432. The servo PLL 426, in general, is acontrol loop that is used to provide frequency and phase control for theone or more timing or clock circuits (not specifically shown in FIG. 4),within the servo demodulator 404. For example, the servo PLL 426 canprovide timing signals to the read/write path 412. The servo AGC 428,which includes (or drives) a variable gain amplifier, is used to keepthe output of the read/write path 412 at a substantially constant levelwhen servo wedges 138 on one of the disks 110 are being read. The servofield detector 430, which is discussed in more detail with reference toFIG. 5, is used to detect and/or demodulate the various subfields of theservo wedges 138, including the SAM 304, wedge number 306, track number308 and servo bursts 310. The microprocessor 410 is shown as beingseparate from the servo demodulator 404. However, because themicroprocessor 410 is used to perform various servo demodulationfunctions (e.g., decisions, comparisons, characterization and the like),the microprocessor 410 can be thought of as being part of the servodemodulator 404, or the servo demodulator 404 can have its ownmicroprocessor.

The servo fields 138 are typically written at a different frequency thanthe interspersed user data fields 118. Because of this, the read/writepath 412 will either switch between independent signal paths, or switchcharacteristics of common processing circuitry. To accomplish this,information for the servo AGC 428 can be stored in registers and/ormemory, allowing the information to be updated in the servo AGC 428 eachtime the read/write path 412 transitions between reading user data andservo data. For example, one or more registers (e.g., in register space432) can be used to store appropriate servo AGC values (e.g., gainvalues, filter coefficients, filter accumulation paths, etc.) for whenthe read/write path 412 is reading servo data, and one or more registerscan be used to store appropriate values (e.g., gain values, filtercoefficients, filter accumulation paths, etc.) for when the read/writepath 412 is reading user data. A control signal can be used to selectthe appropriate registers according to the current mode of theread/write path 412. The servo AGC value(s) that are stored can bedynamically updated. For example, the stored servo AGC value(s) for usewhen the read/write path 412 is reading servo data can be updated eachtime an additional servo wedge 138 is read. In this manner, the servoAGC value(s) determined for a most recently read servo wedge 138 can bethe starting servo AGC value(s) when the next servo wedge 138 is read.

In addition to storing servo AGC information, servo PLL information(e.g., a servo PLL frequency) can be stored in registers and/or inmemory, allowing the servo PLL information to be dynamically updated.For example, a servo PLL frequency value determined for a most recentlyread servo wedge 138 can be the starting servo PLL frequency when thenext servo wedge 138 is read.

Referring now to FIG. 5, some additional details of an exemplaryread/write path 412 and an exemplary servo field detector 430 are shown.Since embodiments of the present invention relate more to readoperations, than to write operations, only read portions or theexemplary read/write path 412 are shown. The read portion of path 412 isshown as including a variable gain amplifier (VGA) 512, which receivessignals from heads 414, or more likely from a pre-amplifier (not shown)driven by a signal received from heads 414. As mentioned above, the VGA512 maybe external to the read/write path 412. During servo reading, theVGA 512 is at least partially controlled by the servo AGC 428.Additional amplifiers, such as buffer amplifiers and/or one or moreadditional VGAs may also be present. The path 412 is also shown asincluding an analog filter/equalizer 514, a flash analog-to-digital(A/D) converter 516, a finite impulse response (FIR) filter 518 and adecoder 520. Alternatively, the FIR filter 518 can be upstream of theA/D converter 516, and FIR filtering can be performed using analogcircuitry.

During servo reading, magnetic flux transitions sensed by the selectedhead 414 are likely preamplified before being provided to the VGA 512,which controls amplification of an analog signal stream. The amplifiedanalog signal stream is then provided to the analog filter/equalizer514, which can be programmed to be optimized for the data transfer rateof the servo data being read by one of heads 414. The equalized analogsignal is then subjected to sampling and quantization by the high speedflash A/D 516 which generates raw digital samples that are provided tothe FIR filter 518. Timing for sampling can be provided by the servo PLL426, as shown. Alternatively, sampling may be performed asynchronously,e.g., using an asynchronous clock (in which case, most features of thepresent invention are still useful). The FIR filter 518 filters andconditions the raw digital samples before passing filtered digitalsamples to the decoder 520. The decoder 520 decodes the digital samplestream and outputs a binary signal. The servo PLL 426 can also provideother timing signals that are necessary for the path 412 and portions ofthe servo demodulator 404 to operate properly.

The binary signal output is provided to the servo field detector 430,and more specifically to a SAM detector 532 and a track number detector534 of the servo field detector 430. The output of the FIR filter 518 isprovided to a burst demodulator 536. Alternatively, the output of theflash A/D 516 can be provided to the burst demodulator 536. The SAMdetector 532 searches for a SAM using, for example, pattern recognitionlogic that recognizes the SAM pattern within the binary stream. The SAMdetector 532 can allow some fault or error tolerance, so that a SAMpattern will be detected even if one or more of the bits in the binarystream do not exactly match the SAM pattern. As a consequence, shouldminor errors occur in reading or writing the SAM patterns, it may stillbe possible to fully demodulate the information contained in the servowedge 138 and to read and write data in the data fields 118 followingthe servo wedge 138 in which the errors were detected. An exemplaryerror tolerant SAM detection circuit is disclosed in U.S. Pat. No.5,477,103 to Romano et al., entitled “Sequence, Timing andSynchronization Technique for Servo System Controller Of A Computer DiskMass Storage Device,” which is incorporated herein by reference. Thetrack number detector 534 performs decoding of gray codes (if necessary)and detects track numbers. The burst demodulator 536 measures burstamplitudes and/or phases. The servo field detector 430 may also includea wedge number detector, not shown. The wedge number detector woulddetect a wedge number to determine which wedge is being read. The wedgenumber detector can alternatively detect an index mark type wedge numberand determine which wedge is being read based on the number of wedgesthat have been passed since the index mark was detected.

The exemplary servo field detector 430 is shown as also including amaster state machine 550, which generates states providing timingsignals and windows for each of the subpart fields 302,304, 306 and 310of each servo wedge 138. The master state machine 550 can also superviseoperation of various other elements that may be part of the servo fielddetector 430.

A sector timer 542 can be used for controlling the length of a servowedge 138, for controlling a SAM search window, and other servo datareader functions including, for example, servo interrupt, servo-dataoverwrite protection, write to read recovery time and AGC timing. Thesector timer 542 is, for example, a 12-bit (or more) upcounting,synchronously loadable counter running at one half of the operatingfrequency of the servo field detector 430. Each sector timer count canbe a clock cycle, which is, for example, 10.0 nanoseconds. Rather thanusing the sector timer 542 (or in addition to using the sector timer542), a delay timer (not shown) can be used to perform functions of, orsimilar to, the sector timer 542. Alternatively, a programmedfinite-state machine can be used to perform timing functions (and toperform the functions of the master state machine 550).

One of ordinary skill in the art will appreciate that the path 412 andthe servo field detector 430 may include additional components, whichare not shown because they are not necessary to explain the embodimentsof the present invention.

Searching for SAM patterns

In accordance with some embodiments of the present invention, when themaster state machine 550 (together with the SAM detector 532) detects aservo address mark (SAM), it signals the sector timer 542 causing thepresent value of the sector timer to be saved (e.g., in register space432 or memory), and the sector timer 542 to be reset to zero. The valuestored, which is known as the SAM-to-SAM value, can be used to determinewhere/when to search for the next SAM.

The master state machine 550 (together with the SAM detector 532)searches for a next SAM within a search window, defined about anexpected value (e.g., defined about a sector timer value where the nextSAM is expected to be detected). The expected value can be based, forexample, on the most recently detected SAM-to-SAM value, on a group ofrecently detected SAM-to-SAM values (e.g., based on an average of theprevious few SAM-to-SAM values), or based on a nominal or predeterminedSAM-to-SAM value. More specifically, the search window can be defined bya STARTSEARCH value (e.g., stored in a STARTSEARCH register) and anENDSEARCH value (e.g., stored in an ENDSEARCH register).

Free-Wheeling

If the master state machine 550 misses detection of a SAM, the sectortimer 542 does not get reset and keeps counting upward. When the sectortimer 542 reaches the time equal to the ENDSEARCH value, it sends asignal to the master state machine 550, indicating a timeout conditionhas occurred. At this point, the sector timer 542 loads the value from aTIMESUP load time register, which is the time the sector counter 542would nominally be at had the SAM been detected at the expected time andthe sector timer 542 reset. Loading the TIME SUP load time value intothe sector timer 542 enables demodulation of some of the remainingsub-fields of the servo wedge and searching for the next SAM at thecorrect time/location. The above process, which occurs after missing thedetection of a SAM, is often referred to as “free-wheeling.”

The concept of free-wheeling can be better appreciated from the SectorTimer Value vs. Time graph shown in FIG. 6. In FIG. 6, a dashed line 602represents the value of the sector timer 542 that triggers the servodemodulator 404 to begin searching for the SAM. This value is referredto as the STARTSEARCH value, which can be stored in a STARTSEARCHregister or in memory. A dashed line 604 represents the value of thesector timer 542 at which the SAM is expected, referred to hereafter asa EXPECTSAM value, which can be stored in an EXPECTSAM register and/orin memory. As mentioned above, the EXPECTSAM value can be a nominal orpredetermined value, or it can be dynamic by being based on one or moreprevious SAM-to-SAM values. A dashed line 606 represents the ENDSEARCHvalue (i.e., the value of the sector timer 542 that will trigger atimeout), which can be stored in an ENDSEARCH register or in memory. Asmentioned above, the STARTSARCH value and the ENDSEARCH value define asearch window for the SAM pattern, with the EXPECTSAM value defining theexpected time/location of the SAM pattern within the window.

In this example, the SAM is detected at times t1 and t2. However, theSAM is not detected at time t3, and eventually the sector timer valueequals the ENDSEARCH value. At this time, the timeout condition hasoccurred and the sector timer 542 loads the value from the TIMESUP loadtime register (or from memory), which is represented by dashed line 608.This enabled the next SAM to be detected at time t4. For a more specificexample, assume the STARTSEARCH value equals 990, the EXPECTSAM valueequals 1000, and the ENDSEARCH value equals 1010. The difference betweenthe EXPECTSAM value and the ENDSEARCH value in this example equals 10(i.e., 1010−1000=10), which is the value in the TIMEUP load timeregister represented by dashed line 608. Once the timeout conditionoccurs, the sector timer 542 is reset to 10 (instead of zero), enablingthe servo field detector 430 to detect the next SAM at time t4.

Deficiencies of Free-Wheeling

Free-wheeling provides away for the servo field detector 430 to detect anext SAM, if a SAM is missed, as explained above. However, free-wheelingdoes not provide a solution for the situation where another portion of aservo wedge, which is identical to the SAM (or due to noise, or media orsignal corruption, appears identical to the SAM), is detected instead ofan actual SAM. The detection of another portion of the servo wedge thatis identical to the SAM pattern or appears to be the SAM pattern, but isnot intended to be the SAM, is referred to herein as a “bad SAMdetection.” In contrast, the detection of a SAM pattern that is intendedto act as a SAM (i.e., written on the disk to function as a SAM), shallbe referred to herein as a “good SAM detection.” A bad SAM detection mayalso occur because an error tolerant SAM detection circuit made anincorrect decision.

In a conventional servo demodulator, when a bad SAM detection occurs,the sector timer to is reset to zero. Because the sector timer is resetto zero at the wrong time, the servo field detector will start to searchfor the next SAM at the wrong time (and thus, at the wrong location onthe disk). There is still a chance that the servo field detector willdetect a good SAM in the next servo wedge, even if it begins looking atthe wrong time/location. However, it is possible that once a bad SAMdetection occurs, that the servo demodulator will completely lose lock,requiring the servo demodulator to halt and restart in order to relockthe servo signal. Such relocking of the servo signal is time consuming,reducing the performance of the drive. Further, if a bad SAM detectionrepeatedly occurs at a specific location on a disk, it may make itimpossible to retrieve previously written data.

As just explained, a single bad SAM detection can cause the servodemodulator to completely lose lock. Embodiments of the presentinvention, as described below, reduce the likelyhood, and hopefullyprevent, the servo demodulator from losing lock after a bad SAMdetection.

A bad servo signal can also cause the servo AGC and/or PLL values thatare stored, as explained above, to be corrupted. As explained above,servo AGC and/or PLL values can be stored in registers or memory so thatvalues determined while reading one servo wedge 138 can be used as thestarting values for reading a next servo wedge 138. When a servo wedge138 is corrupted, it is possible that the values determined for servoAGC and servo PLL during that servo wedge 138 are garbage (i.e.,corrupted). For example, if the servo wedge 138 was DC erased, the servoAGC 428 may over amplify a very low amplitude servo signal, and may evensaturate itself and/or the VGA 512. Similarly, if the servo wedge 138has been essentially erased, or is absent due to a media defect on thedisk 110, the servo PLL may become erratic while attempting to lock to acorrupt servo signal. Thus, a bad servo wedge can also cause the valuesdetermined for servo AGC and servo PLL, during that servo wedge, to begarbage (i.e., corrupted). If these garbage values are used as startingvalues when the next servo wedge 138 is read, it is likely that it willtake at least the entire next servo wedge 138 for the servo AGC 428 andthe servo PLL 426 to recover (e.g., because the servo AGC 428 issaturated and the servo PLL 426 is erratic), causing the SAM in the nextservo wedge 138 to be missed. This in turn can cause the servodemodulator 404 to completely lose lock. When this occurs, the wholeconcept, of having what is learned from one servo wedge influencing howa next wedge is read, backfires. Embodiments of the present invention,as described below, reduce the likelihood, and hopefully prevent, theservo AGC 428 and the servo PLL 426 from retrieving and using garbagevalues.

Characterizing a SAM Detection as Good or Bad

As explained above, in a conventional servo demodulation circuit, thesector timer 542 is automatically reset to zero after a good SAMdetection or a bad SAM detection. This functionality already exists inmany servo demodulators. Some embodiments of the present invention aredirected to reducing the probability that this type of demodulator willlose lock after a bad SAM detection. More specifically, theseembodiments provide away to overcome the situation where the sectortimer 542 is wrongly reset to zero because of a bad SAM detection.

As mentioned above, when the SAM is detected (whether a good or baddetection), the master state machine 550 signals the sector timer 542 tocause the present value of the sector timer 542 to be saved as aSAM-to-SAM value, and the sector timer 542 to be reset to zero. Whenthis occurs, the previous SAM-to-SAM value (e.g., in the SAM-to-SAM timeregister or memory) is typically written over and the sector timer valueis reset to zero, affecting when/where to search for the SAM in the nextservo wedge 138.

Conventionally, after the SAM pattern is detected in a servo wedge 138,the servo demodulator 404 determines a wedge number value, a tracknumber value and a burst value. Based on these values, the servodemodulator 404 can determine (e.g., calculate) a position error signal(PES). For example, a PES can be calculated based on a track numbervalue and a burst value (e.g., a burst amplitude value).

In accordance with embodiments of the present invention, future wedgenumber values, track number values, burst values and/or PES values arepredicted. The prediction of a next wedge number value is easilydetermined based on a previous wedge number value. Prediction of theother servo demodulation values can be determined, for example, usingstate space estimation. Such state space estimation can be performed,for example, in software and/or firmware (e.g., using the microprocessor410) that run models to produce predicted values. State space estimationis discussed in various control system books, such as “Digital Controlof Dynamic Systems, Second Edition,” by Franklin, Powell and Workman,Addison-Wesley Publishing Company, Inc. (1980). Factors taken intoaccount in these predictions can include, for example, previouslydetected wedge number values, track number values and/or burst values. Avalue can be predicted for the wedge number, track number, burst valueand/or PES, or a range of values can be predicted. Such a range ofvalues can include either a plurality of different values, or two valuesthat define boundaries.

In accordance with embodiments of the present invention, each detectionof the SAM pattern is characterized as a good SAM detection or a bad SAMdetection. Such characterizations can be based on comparisons betweenthe actual servo demodulation values and the predicted servodemodulation values. These characterizations may not be completelyaccurate (i.e., a detection of a pattern intended to be a SAM may becharacterized as a bad SAM detection, or a detection of a pattern notintended to be a SAM pattern maybe characterized as a good SAMdetection). However, the accuracy of the characterizations can be madevery high using the various embodiments discussed below.

In accordance with embodiments of the present invention, if an actualservo demodulation value (e.g., a wedge number value) is substantiallyequal to (i.e., equal to, or with an allowed tolerance of) a predictedvalue, a detection of the SAM is characterized as a good SAM detection.In embodiments where a range of servo demodulation values are predicted(e.g., a range of PES values), a detection of the SAM pattern can becharacterized as a good SAM detection if an actual servo demodulationvalue (e.g., an actual PES value) is within the range of predictedvalues. A plurality of predicted and actual servo demodulation valuescan be determined for a servo wedge. The plurality of predicted values(or ranges of values) can then be compared to the actual servodemodulation values in order to characterize the SAM detection as a goodor a bad SAM detection. Where multiple types of servo demodulationvalues are being predicted and actually determined, the results of themultiple comparisons performed can be weighted equally, or weighteddifferently, during characterization. In accordance with embodiments ofthe present invention, multiple comparisons can be used to produce aconfidence value, which can be compared to a confidence threshold, inorder to characterize a SAM detection as a good or bad SAM detection.

Alternatively, or additionally, the confidence of one or more specificvalues (e.g., a track number value or a wedge number value) and/or theconfidence for a SAM detection can be determined, and these confidencedetermination(s) can be included in the good/bad SAM detectioncharacterizations. Such confidence determinations can be based, forexample, on the number of matched (or mis-matched) bits in a patternjust read.

Confidence determinations can alternatively, or additionally, be basedon amplitudes of servo signal samples that make up a detected SAMpattern. For example, demodulated bits can be characterized as lowconfidence or high confidence bits, and the occurrence of low confidencebits (and/or high confidence bits) can be factored into the good/bad SAMdetection characterization. U.S. Pat. No. 5,862,005 to Leis et al.,entitled Synchronous detection of wide bi-phase coded servo informationfor disk drive,” and U.S. Pat. No. 5,384,671 to Fisher, entitled, “PRMLsampled data channel synchronous servo detector,” which are incorporatedherein by reference, discuss exemplary schemes that can be used forspecifying the confidence of bits.

As explained above, in the discussion of FIG. 6, the servo demodulator404 has access to an EXPECTSAM value, which was represented by dashedline 604. As mentioned above, the EXPECTSAM value can be a nominal orpredetermined value, or it can be dynamic by being based on one or moreprevious SAM-to-SAM values. If dynamic, the dashed line 604 may not beas straight or horizontal as shown in FIG. 6. In accordance with anembodiment of the present invention, the extent that an actualSAM-to-SAM value (associated with a detected SAM pattern) differs fromthe EXPECTSAM value is used as a factor when characterizing a SAMdetection as a good or a bad SAM detection. For example, adetermination, that the difference between the present SAM-to-SAM valueand the EXPECTSAM value is greater than a threshold, can be used whencharacterizing a SAM pattern detection as a bad or a good SAM detection.More specifically, the determination that the difference between theactual SAM-to-SAM value and the EXPECTSAM value is greater than athreshold, can be used together with a comparison(s) between predictedand actual values for the PES, wedge number value, track number value,burst value and/or quality value(s) when characterizing a detection ofthe SAM pattern as a good or a bad SAM detection. These various factorscan be weighted equally, or differently, as desired.

Assuming a SAM detection is characterized as a good SAM detection, theservo demodulator 404 searches for the SAM pattern in the next servowedge 138 as it normally would. However, if a SAM detection ischaracterized as a bad SAM detection, then embodiments of the presentinvention provide a way to overcome the situation where the sector timer542 is wrongly reset to zero (which will cause the servo demodulator 404to search for the next SAM at the wrong time/location). More generally,the present invention can be used to help prevent the servo demodulator404 from losing lock after a bad SAM detection.

Performing Servo Functions Based on Whether a Detection of the SAMPattern is Characterized as a Good or a Bad SAM Detection

The Sector Timer Value vs. Time graph of FIG. 7 will now be used to helpexplain how embodiments of the present invention can prevent the servodemodulator 404 from losing lock after a bad SAM detection. In FIG. 7,as in FIG. 6, dashed line 602 represents the value of the sector timer542 that triggers the SAM detector 532 to begin searching for a SAM(e.g., the STARTSEARCH value), dashed line 604 represents the value ofthe sector time at which the SAM is expected (e.g., the EXPECTSAMvalue), and dashed line 606 represents the ENDSEARCH value (i.e., thevalue of the sector timer 542 that will trigger a timeout condition).

In this example, the SAM pattern is detected at times t1 and t2 (assumethese are good SAM detections). Additionally, the SAM pattern isdetected at time t3−n, which is earlier than the next expected SAM timet3. As explained above and as shown in FIG. 7, conventionally the sectortimer 542 is automatically reset to zero at time t3-−n, whether a goodSAM detection or a bad SAM detection occurred at time t3−n.Conventionally, this will cause the servo demodulator 404 to startsearching for the next SAM at an earlier than appropriate time/location(because the sector timer 542 was reset to zero earlier thanappropriate). Additionally, the time/location of the next EXPECTSAM andENDSEARCH will be adversely effected. This may result in another bad SAMdetection, or missing the next SAM, in turn resulting in the servodemodulator 404 losing lock.

Now, assume that an embodiment of the present invention, as describedabove, is used to characterize the detection of the SAM pattern at timet3−n as a bad SAM detection. In accordance with an embodiment of thepresent invention, the SAM pattern in the next servo wedge 138 will besearched for based on when/where the previous SAM pattern, that wascharacterized as a good SAM detection, was detected. In this example thesector timer 542 was already reset to zero, and has begun counting. Thesearching for the next SAM based on a time/location of a detected SAMpattern, characterized as a good SAM detection, is accomplished bybeginning to search for the next SAM pattern at a later time/location.For example, assume that the stored STARTSEARCH value equals 990, thestored EXPECTSAM value equals 1000, and the stored ENDSEARCH valueequals 1010. Also assume the SAM pattern characterized as a bad SAMdetection was detected when the sector timer value was 992, and that theprevious SAM pattern, characterized as a good SAM detection, wasdetected when the sector timer value was 1000. Thus, the bad SAMdetection in this example occurred 8 sector timer counts earlier thanthe EXPECTSAM value. As just mentioned, one of the embodiments of thepresent invention, described above, is used to characterize the currentSAM detection as a bad SAM. In accordance with an embodiment of thepresent invention, to correct for the bad SAM detection, the value inthe STARTSEARCH register is temporarily set to equal 998 (i.e.,990+8=998), the value in the EXPECTSAM register is temporarily set to1008 (i.e., 1000+8=1008), and the value in the TIMESEUP timeout registeris temporarily set to 1018 (i.e., 1010+8=1008). If some of these valueswere stored in memory locations, they can be temporarily changed inmemory. More generally, where/when to search for the next SAM isadjusted so that the search for the next SAM is based on the mostrecently detected good SAM(s), rather than being based on the detectioncharacterized as a bad SAM. In this example, this enables the servodemodulator 404 to perform a good SAM detection at time t4, at whichpoint the STARTSEARCH, EXPECTSAM and ENDSEARCH values are reset orreturned to what they were at time t2, and the servo demodulator 404maintains servo lock. More specifically, when the SAM pattern isdetected (e.g., at time t4), and characterized as a good SAM detection,as a result of temporarily adjusting values (e.g., the values in theSTARTSEARCH register, the EXPECTSAM register and the ENDSEARCH register,as explained above) these values are returned to their previous values(e.g., by subtracting 8 counts from each value or replacing the valueswith stored values).

In a similar manner, the present invention can be used to begin tosearch for the SAM pattern in the next servo wedge 138 at an earliertime/location, if a bad SAM detection occurs when the sector timer valueis between the EXPECTSAM value and the ENDSEARCH value (but did notreach the ENDSEARCH value, which would cause free-wheeling).

In accordance with other embodiments of the present invention, ratherthan adjusting values such as the STARTSEARCH, EXPECTSAM and ENDSEARCHvalues, a timer (e.g., sector timer or delay timer) is appropriatelyadjusted so that the search window for the next SAM pattern iseffectively adjusted. This will now be described with reference to theSector Timer Value vs. Time graph of FIG. 8. As in FIGS. 6 and 7, dashedline 602 represents the value of the sector timer 542 that triggers theSAM detector 532 to begin searching for a SAM (e.g., the STARTSEARCHvalue), dashed line 604 represents the value of the sector time at whichthe SAM is expected (e.g., the EXPECTSAM value), and dashed line 606represents the ENDSEARCH value (i.e., the value of the sector timer 542that will trigger a timeout condition).

In this example, the SAM pattern is detected at times t1 and t2 (assumethese are good SAM detections). Additionally, the SAM pattern isdetected at time t3−n, which is earlier than the next expected SAM timet3. As explained above and as shown in FIG. 8, conventionally the sectortimer 542 is automatically reset to zero at time t3−n, whether a goodSAM detection or a bad SAM detection occurred at time t3−n.Conventionally, this will cause the servo demodulator 404 to startsearching for the next SAM at an earlier than appropriate time/location(because the sector timer 542 was reset to zero earlier thanappropriate), which may result in another bad SAM detection, or missingthe next SAM, in turn resulting in the servo demodulator 404 losinglock.

Now, assume that an embodiment of the present invention, as describedabove, is used to characterize the detection of the SAM pattern at timet3−n as a bad SAM detection. In accordance with an embodiment of thepresent invention, the SAM pattern in the next servo wedge 138 will besearched for based on when/where the previous SAM pattern was detected,which was characterized as a good SAM detection. Since in this examplethe sector timer 542 was already reset to zero, and has began counting,the searching for the next SAM based on a previous SAM detection(characterized as a good SAM detection) is accomplished by adjusting atimer (e.g., sector timer or delay timer). For example, assume that thestored STARTSEARCH value equals 990, the stored EXPECTSAM value equals1000, and the stored ENDSEARCH value equals 1010. Also assume the SAMpattern, characterized as a bad SAM detection was detected when thesector timer value was 992, and that the previous SAM detection(characterized as a good SAM detection) occurred when the sector timervalue was 1000. Thus, the bad SAM detection in this example occurred 8sector timer counts earlier than the EXPECTSAM value (and thus thesector timer was reset 8 counts too early, and is therefore 8 countsgreater than it should be). As just mentioned, one of the embodiments ofthe present invention, described above, is used to characterize the SAMdetection at time t3−n as a bad SAM detection. In accordance with anembodiment of the present invention, to correct for the bad SAMdetection, the value of the sector timer is adjusted (in this example,reduced by 8 counts) so that the bad SAM detection does not adverselyaffect the SAM search window. More generally, where/when to search forthe next SAM is adjusted, by adjusting the timer, so that the search forthe next SAM is based on the most recently detected SAM(s) that wascharacterized as a good SAM detection, rather than being based on thebad SAM. In this example, this enables the servo demodulator 404 toperform a good SAM detection at time t4, and the servo demodulator 404maintains servo lock. In other words, in this example the timer isadjusted so that it is equal to what it would have been had the SAMpattern been detected at time t3 (in which case the timer would havebeen following dashed line 802).

In a similar manner, the present invention can be used to upwardlyadjust the timer (i.e., to add counts to the timer), if a bad SAMdetection occurs when the sector timer value is between the EXPECTSAMvalue and the ENDSEARCH value (but did not reach the ENDSEARCH value,which would cause free-wheeling).

Features of the embodiments of the present invention can be implementedprimarily in software and/or in firmware (e.g., RAM, ROM, PROM and/orEPROM), or in combinations thereof. For example, where embodiments ofthe invention are to be used with an existing servo demodulator 404,firmware can be programmed to characterize a detected SAM pattern aseither a good or a bad SAM detection, to adjust values used to searchfor the SAM pattern (e.g., the values in the STARTSEARCH register, theEXPECTSAM register and the ENDSEARCH register, or in memory as explainedabove), and/or to only update other control values (e.g., servo AGCand/or PLL values) following a good SAM detection. Firmware can also beprogrammed to overwrite erroneously updated servo AGC and/or PLL valueswith more appropriate previously determined values, in accordance withembodiment of the present invention.

Embodiment of the present invention can also be implemented primarily inhardware. As mentioned above, STARTSEARCH, EXPECTSAM, ENDSEARCH andTIMESUP load time values can be stored in registers. When a SAMdetection is characterized as a bad SAM detection, the master statemachine 532 or microprocessor 410 can write a specified bit (e.g., azero) to a predetermined register. In accordance with an embodiment ofthe present invention, writing the specified bit to the predeterminedregister will cause the values in the STARTSEARCH and ENDSEARCHregisters to be adjusted by an ADJUST value. According to an embodimentof the preset invention, the ADJUST value is equal to the actualSAM-to-SAM value (i.e., the value of the sector timer 542 when the SAMcharacterized as being bad was detected) minus the stored EXPECTSAMvalue. Prior to the bad SAM detection, assume the STARTSEARCH value(i.e., the value the in the STARTSEARCH register) is 990, the EXPECTSAMvalue is 1000, and the ENDSEARCH value is 1010. Also assume, for thisexample, that the SAM-to-SAM value is 993 when the SAM characterized asbeing bad is detected (i.e., the value of the sector timer 542 is 993when the SAM characterized as being bad was detected), thereby causingthe ADJUST value to equal −7 (i.e., 993−1000=−7). After the values inthe STARTSEARCH and ENDSEARCH registers are adjusted by −7, theSTARTSEARCH value becomes 997 (i.e., 990−−7=997) and the ENDSEARCH valuebecomes 1017 (i.e., 1010−−7=1017). In another example, assume that theSAM-to-SAM value is 1005 when the SAM characterized as being bad isdetected. This will cause the ADJUST value to equal 5 (i.e.,1005−1000=5). After the values in the STARTSEARCH and ENDSEARCHregisters are adjusted by 5, the STARTSEARCH value becomes 985 (i.e.,990−5=985) and the ENDSEARCH value becomes 1005 (i.e., 1010−5=1005).Such adjustments to the STARTSEARCH and ENDSEARCH registers will assistthe servo demodulator 404 with performing a good SAM detection in thenext servo wedge 138, even though a bad SAM detection occurred in thecurrent servo wedge 138 .

In accordance with another embodiment of the present invention,STARTSEARCH, EXPECTSAM, ENDSEARCH and TIMESUP load time values can bestored in memory. Then, writing a specified bit to the predeterminedlocation in memory will cause the values in the STARTSEARCH andENDSEARCH registers to be adjusted by an ADJUST value, in a mannersimilar to that just explained above.

Many embodiments of the present invention, discussed above, can besummarized in the flow chart of FIG. 9. Referring to FIG. 9, at a step902, one or more predicted servo demodulation values are determined fora next servo wedge. For example, the one or more predicted servodemodulation values can include one, a plurality, or a range of wedgenumber, track number, burst amplitude, and/or PES value(s).

At a step 904, the SAM pattern is searched for in the next servo wedge.If the SAM pattern is not detected in the servo wedge (i.e., if theanswer to the decision 906 is no), then further servo functions areperformed taking into account no SAM detection, as specified at a step916. This can include, for example, free-wheeling to attempt to detectthe SAM pattern in the following servo wedge. This can also includehalting reading data from and writing data to data fields that followthe servo wedge. This can further include, using the one or morepredicted servo demodulation values for servo control.

If the SAM pattern is detected in the servo wedge (i.e., if the answerto decision 906 is yes), then one or more actual servo demodulationvalues are determined for the servo wedge, at a step 908. Then, at astep 910, the detection of the SAM pattern is characterized as a goodSAM detection or a bad SAM detection. As explained above, this can beaccomplished by comparing the actual servo demodulation value(s) to thepredicted servo demodulation value(s). Alternatively, or additionally,other factors, such as the extent that an actual SAM-to-SAM value(associated with a detected SAM pattern) differs from an EXPECTSAMvalue, and/or confidence determinations, can be used to characterize adetection of the SAM pattern as a good or a bad SAM detection.

If the detection of the SAM pattern is characterized as a bad SAMdetection (i.e., if the answer to decision 912 is no), then furtherservo functions are performed, taking into account the bad SAM detectioncharacterization, as specified at a step 918. For example, this caninclude halting reading data from and writing data to data fields thatfollow the servo wedge. This can also include, using the one or morepredicted servo demodulation values for servo control, since the actualservo demodulation values are likely garbage. Additionally, where orwhen to search for the SAM pattern in the following servo wedge can beappropriately adjusted, as explained in detail above.

If the detection of the SAM pattern is characterized as a good SAMdetection (i.e., if the answer to decision 912 is yes), then furtherservo functions are performed, taking into account the good SAMdetection characterization, as specified at a step 914. For example,this can include reading data from and writing data to data fields thatfollow the servo wedge. This can also include, using the one or moreactual servo demodulation values for servo control, since the actualservo demodulation values are likely good. Additionally, where or whento search for the SAM pattern in the following servo wedge can be basedon where or when the SAM pattern was just detected (e.g., the center ofthe next SAM search window can be based on the just determinedSAM-to-SAM time).

Searching for More than One Occurrence of the SAM Pattern in a SingleServo Wedge

Conventionally, if a bad SAM detection occurs within a servo wedge 138,a servo demodulator will not perform a good SAM detection within thatsame servo wedge, even if a good SAM pattern exists later within thatsame servo wedge. For example, if a servo demodulator performs a bad SAMdetection near the beginning of a search window, a conventional servodemodulator will not detect a good SAM pattern that is also present inthe servo wedge. This is because conventional servo demodulators do notsearch for more than one SAM pattern within a single servo wedge.Embodiments of the present invention, as described below, search formore than one SAM pattern within a single servo wedge, and select whichSAM detection (if any) is a good SAM detection. In this manner, furtherservo functions (e.g., servo control) can be performed using servodemodulation values associated with a good SAM detection (or a best goodSAM detection, if there is more than one good SAM detection).

In accordance with embodiments of the present invention, portions of theservo demodulator 404 (or the entire servo demodulator 404, or portionsof or the entire servo demodulator 404 and portions of the read/writepath 412) are duplicated so that more than one SAM pattern can besearched for within a single servo wedge. For example, two servo fielddetectors 430 (each including a SAM detector 532) can each search forthe SAM pattern within a single servo wedge. When the first servo fielddetector 430 detects the SAM pattern, the second servo field detector430 will suppress or ignore that the SAM pattern was detected and willcontinue to search for the SAM pattern in the remaining portion of theservo wedge (as defined by the remaining portion of the search window).If the second servo field detector 430 also detects the SAM pattern, adetermination is made as to which SAM detection (if any) is a good SAMdetection. If both SAM detections are characterized as a good SAMdetection, then a best good SAM detection can be selected, as describedbelow.

If no SAM detection is characterized as a good SAM detection, then theSAM pattern in the next servo wedge 138 can be searched for based on theone or more previous characterized good SAM detections. Additionally, ifno SAM detection is characterized as a good SAM detection (or if thereis no SAM detection at all within a servo wedge 138), then themicroprocessor 410 can use predicted servo demodulation values for servocontrol (e.g., for control of the VCM 418).

Embodiments of the present invention are not meant to be limited tosearching for only two of the SAM patterns within a single servo wedge.For example, further servo field detectors 430 can be provided to searchfor additional occurrences of the SAM pattern within a single servowedge.

Servo demodulation values (e.g., a track number value, a wedge numbervalue, a burst value and/or a PES value) can be determined for each SAMpattern detected within a servo wedge 138. Then, each SAM patterndetection can be characterized as a good SAM detection or a bad SAMdetection. If only one good SAM detection occurs in the servo wedge 138,the servo demodulation values associated with the good SAM detection areused for servo control (e.g., used in servo control algorithms).Additionally, where or when to search for the SAM pattern in the nextservo wedge 138 is based on when/where the one good SAM detectionoccurred.

If more than one good SAM detection occurs in the servo wedge 138, thena “best” good SAM detection can be selected. Selection of the best goodSAM detection can be based on which SAM detection corresponds to one ormore actual servo demodulation values that are closest to one or morepredicted servo demodulation values. The servo demodulation valuesassociated with the best good SAM detection can be used for servocontrol (e.g., used in servo control algorithms). In summary, the one ormore actual servo demodulation values associated with the best good SAMdetection (or the only good SAM detection) are used for servo control(e.g., for control of the VCM 418). If there is no good SAM detection(or no SAM detection at all), the one or more predicted servodemodulation values can be for servo control.

In accordance with other embodiments of the present invention, the servodemodulator 404 searches for more than one SAM pattern in a single servowedge 138 without duplicated portions of the servo demodulator 404 (orminimizing the portions that are duplicated). For example, a singleservo field detector 430 (including a single SAM detector 532) cansearch for multiple occurrences of the SAM pattern within a single servowedge 138. Each time the SAM detector 532 detects the SAM pattern in aservo wedge 138, it informs the microprocessor 410 and/or master statemachine 532 of the detection, and continues to search for additionaloccurrences of the SAM pattern. Each time the SAM detector 532 detectsthe SAM pattern, the track number detector 534 and burst demodulator 536generate servo demodulation values that correspond to the detected SAMpattern. The microprocessor 410 can keep track of the multiple SAMpattern detections and corresponding servo demodulation values (whichmay be stored in registers or memory), and then select which SAMdetection (if any) is a good (or best good) SAM detection. Themicroprocessor 410 can then use the appropriate servo demodulationvalues (whether actual or predicted) for servo control. Further, themicroprocessor 410 can appropriately adjust the SAM search window forthe next servo wedge 138 (e.g., by adjusting STARTSEARCH and ENDSEARCHvalues) based on a good (or a best good) SAM detection, or based on aprevious good SAM detection if there is no SAM detection or no good SAMdetection for the current servo wedge.

In accordance with embodiments of the present invention, the servosubpart field following a detected SAM pattern (e.g., the wedge numberfield) is immediately demodulated and compared to one or more predictedvalues to characterize the SAM detection as a good or a bad SAMdetection. As soon as the detection is determined to be a bad SAMdetection, no additional demodulation associated with that SAM detectionoccurs. This increases the efficiency of demodulator and microprocessorresources.

In accordance with embodiment of the present invention, servodemodulation values are only stored in registers if they correspond to aSAM pattern detection that is characterized as a good SAM detection.This enables more efficient use of register space. However, inalternative embodiments servo demodulation values are stored prior toSAM detections being characterized as good or bad detections. Then,decisions of whether or not to use the stored servo demodulations valuesare made based on the characterizations of the SAM detections.

Many embodiment of the present invention, discussed above, can besummarized in the flow chart of FIG. 10. Referring to FIG. 10, at a step1002, multiple occurrences of the SAM pattern are searched for in aservo wedge. As explained above, the servo demodulator 404 can includeduplicated portions (e.g., two servo field detectors 430) to performthis step. Alternatively, the servo demodulator 404 can search formultiple occurrences of the SAM pattern, without needing duplicatedportions.

If the SAM pattern is not detected in the servo wedge (i.e., if theanswer to decision 1004 is no), the further servo functions areperformed, taking into account no detection of the SAM pattern. This caninclude, for example, free-wheeling to attempt to detect the SAM patternin the following servo wedge. This can also include halting reading datafrom and writing data to data fields that follow the servo wedge. Thiscan further include, using the one or more predicted servo demodulationvalues for servo control.

Each detection of the SAM pattern is characterized as a good SAMdetection or a bad SAM detection, at a step 1006. Various embodiments ofthe present invention, described above, can be used to perform thesecharacterizations. For example, this can be accomplished by comparingone or more actual servo demodulation value(s) to one or more predictedservo demodulation value(s). Alternatively, or additionally, otherfactors, such as the extent that an actual SAM-to-SAM value (associatedwith a detected SAM pattern) differs from an EXPECTSAM value, and/orconfidence determinations, can be used to characterize each detection ofthe SAM pattern as a good or a bad SAM detection.

If no detection of the SAM pattern is characterized as a good SAMdetection (i.e., if the answer to decision 1008 is no), then furtherservo functions are performed, taking into account a bad SAMdetection(s) characterization(s), as specified at a step 1016 Forexample, this can include halting reading data from and writing data todata fields that follow the servo wedge. This can also include, usingone or more predicted servo demodulation values for servo control, sincethe actual servo demodulation values are likely garbage. Additionally,where or when to search for the SAM pattern in the following servo wedgecan be appropriately adjusted, as explained in detail above.

If only one detection of the SAM pattern is characterized as a good SAMdetection (i.e., if the answer to decision 1010 is no), then furtherservo function are performed, taking into account the one good SAMdetection characterization, as specified at a step 1018. For example,this can include reading data from and writing data to data fields thatfollow the servo wedge. This can also include, using the one or moreactual servo demodulation values for servo control, since the actualservo demodulation values are likely good. Additionally, where or whento search for the SAM pattern in the following servo wedge can be basedon where or when the SAM pattern was just detected (e.g., the center ofthe next SAM search window can be based on the just determinedSAM-to-SAM time).

If multiple detections of the SAM pattern are characterized as good SAMdetections (i.e., if the answer to decision 1010 is yes), then one ofthe detections is selected as a best good SAM detection, at a step 1012.As explained above, selection of the best good SAM detection can bebased on which SAM detection corresponds to one or more actual servodemodulation values that are closest to one or more predicted servodemodulation values.

After one of the SAM detections is selected as a best good SAMdetection, further servo functions are performed, taking into accountthe best good SAM detection characterization, as specified at a step1020. For example, the servo demodulation values associated with thebest good SAM detection can be used for servo control (e.g., used inservo control algorithms). Additionally, where or when to search for theSAM pattern in the following servo wedge can be based on where or whenthe SAM pattern (characterized as the best good SAM pattern) was justdetected. In accordance with an embodiment, data can be written toand/or read from data fields that follow the servo wedge. In analternative embodiment, the fact the two occurrences of the SAM patternwere characterized as good SAM detections can indicate that there is notenough confidence to write to and/or read from data fields that followthe servo wedge. In still another embodiment, if the two good SAMdetections are too closely matched (i.e., one is not much better thanthe other), then there is not enough confidence to write to and/or readfrom data fields that follow the servo wedge. However, if one of thegood SAM detection is much better (e.g., the SAM detection is associatedwith actual demodulation values much closer to the predicted values),then data can be written to and/or read from data fields that follow theservo wedge.

Correcting PLL and/AGC Values After a Bad or Missed SAM Detection

As discussed above, a bad servo signal (e.g., caused by a single badservo wedge 138) can cause the servo AGC and/or PLL values that arestored in registers or memory, to be corrupted. As also explained above,servo AGC and/or PLL values are stored so that values determined whilereading one servo wedge 138 can be used as the starting values forreading a next servo wedge 138. Alternatively, servo AGC and/or PLLvalues that are determined and stored from one servo wedge 138 can beused to predict starting values for reading a next servo wedge 138. Ifcorrupted values are used as starting values (or to predict startingvalues) when the next servo wedge 138 is read, it is possible that itwill take at least the entire next servo wedge 138 for the servo AGC 428and/or the servo PLL 426 to recover, causing the SAM in the next servowedge 138 to be missed. This in turn can cause the servo demodulator 404to completely lose lock. When this occurs, the whole concept, of havingwhat is learned from one servo wedge 138 influencing how a next wedge138 is read, backfires. Embodiments of the present invention, which arenow described, reduce the likelihood, and hopefully prevent, the servoAGC 428 and the servo PLL 426 from retrieving and using garbage valuesafter a bad SAM detection or missed SAM detection (i.e., no SAMdetection) occurs. These embodiments use the knowledge that a bad SAMdetection characterization or missed SAM detection occurred in a servowedge 138, to indicate that it is likely that the servo AGC and servoPLL values during that servo wedge 138 are garbage (i.e., corrupted).

In accordance with embodiments of the present invention, discussed withreference to FIG. 11A, stored servo AGC and/or PLL values are onlyupdated following a good SAM detection. Thus, if a SAM detection ischaracterized as a bad SAM detection, the AGC and/or servo PLL valuesstored in registers or memory are not updated with the values justdetermined by the servo AGC 428 and servo PLL 426. In other embodiments,discussed with reference to FIG. 11B, servo AGC and/or PLL values arestored for each servo wedge, but the just stored values are only used asstarting values (or to predict starting values) for the next servo wedgefollowing a good SAM detection (otherwise, previously stored servo AGCand/or PLL values are used as starting values, or used to predict thestarting values). For example, before new servo AGC and/or PLL valuesare stored for a present servo wedge 138, the values being overwrittenare stored in another location (e.g., in other registers or memorylocations). Then, if the SAM detection for that servo wedge 138 is latercharacterized as a bad SAM detection, the previous servo AGC and/or PLLvalues can be restored. In each embodiment, when a next servo wedge 138is read (following a servo wedge 138 where a bad SAM detectioncharacterization occurred), the starting values for servo AGC 428 and/orPLL 426 will most likely not be garbage, thereby reducing the likelihoodthat the servo demodulator 404 will lose lock.

A particularly useful application of retaining AGC and/or PLL valuesfrom one wedge to the next is with media-written disks, wheremis-centering of disks that are written outside of a disk drive maycause approximately±1% (max) frequency variation. Embodiments of thepresent invention can be used to improve the performance of disk drivesusing media-written disks. In such a case, a prediction of theappropriate PLL value for a next servo wedge can be determined as afunction of the values saved from a previous wedge (one for which a goodSAM detection occurred), the known eccentricity of the disk, and thenumber of wedges since that good SAM detection occurred.

Many embodiment of the present invention, discussed above, can besummarized in the flow chart of FIG. 11A. Referring to FIG. 11A, at astep 1102, the SAM pattern is searched for in a servo wedge. If the SAMpattern is not detected in the servo wedge (i.e., if the answer todecision 1104 is no), then one or more previously stored (or predictedbased on previously stored) channel control values are used as startingvalues when reading a next servo wedge, as specified at a step 1112. Thechannel control values can be servo AGC and/or PLL values, as explainedabove. By using previously stored (or predicted based on previouslystored) channel control values following a missed SAM detection (i.e.,no SAM detection), garbage values will not be used for servo AGC, PLL,and the like, reducing the likelihood the servo demodulator 404 willlose lock, as explained above. Channel control values can be predicted,for example, based on a plurality of previously determined values.Simple averaging algorithms can be used, or more complex state spaceestimations can be used. For example, a starting PLL value can bepredicted based on the PLL value stored for the most recent wedgewherein a good SAM detection occurred, the known eccentricity of thedisk, and the number of wedges since that good SAM detection occurred.

If the SAM pattern is detected in the servo wedge (i.e., if the answerto decision 1104 is yes), then the detection is characterized as a goodor a bad SAM detection, at a step 1106. Various embodiments forcharacterizing the detection of the SAM pattern are explained in detailabove. For example, this can be accomplished by comparing the actualservo demodulation value(s) to the predicted servo demodulationvalue(s). Alternatively, or additionally, other factors, such as theextent that an actual SAM-to-SAM value (associated with a detected SAMpattern) differs from an EXPECTSAM value, and/or confidencedeterminations, can be used to characterize a detection of the SAMpattern as a good or a bad SAM detection.

If the detection of the SAM pattern is characterized as a bad SAMdetection (i.e., if the answer to decision 1108 is no), then one or morepreviously stored (or predicted based on previously stored) channelcontrol values are used as starting values when reading a next servowedge, as specified at step 1112. By using previously stored (orpredicted based on previous stored) channel control values following aSAM detection characterized as a bad SAM detection, garbage values willnot be used for servo AGC, PLL, and the like, reducing the likelihoodthe servo demodulator 404 will lose lock, as explained above.

If the detection of the SAM pattern is characterized as a good SAMdetection (i.e., if the answer to decision 1108 is yes), then thechannel control values determined for a servo wedge are stored, asspecified at a step 1110. The just stored one or more channel controlvalues are then used as starting values (or to predict starting values)when reading the next servo wedge, as specified at a step 1114.

Other embodiments of the present invention, discussed above, can besummarized in the flow chart of FIG. 11B. Referring to FIG. 11B, at astep 1122, the SAM pattern is searched for in a servo wedge. At a step1124, one or more channel control values are stored for the wedge justsearched, regardless of whether a SAM pattern was detected. (Steps 1122and 1124 can be reversed, so that channel control values are only storedif a SAM pattern was detected, regardless whether the SAM detection wascharacterized as good or bad.) If the SAM pattern is not detected in theservo wedge (i.e., if the answer to decision 1126 is no), then one ormore previously stored (or predicted based on previously stored) channelcontrol values are used as starting values when reading a next servowedge.

If the SAM pattern is detected in the servo wedge (i.e., if the answerto decision 1126 is yes), then the detection is characterized as a goodor a bad SAM detection at a step 1128. If the detection of the SAMpattern is characterized as a bad SAM detection (i.e., if the answer todecision 1130 is no), then one or more previously stored (or predictedbased on previously stored) channel control values are used as startingvalues when reading a next servo wedge, as specified at a step 1132. Ifthe detection of the SAM pattern is characterized as a good SAMdetection (i.e., if the answer to decision 1130 is yes), then the juststored one or more channel control values are used as starting values(or to predict starting values) when reading a next servo wedge, asspecified at a step 1134.

Zone Bit Recorded Servo Wedges

Hard disk drive capacity and speed have been improved through the use ofzone bit recording (also known as constant density recording, multiplezone recording, or simply as zone recording), which takes advantage ofthe longer outer tracks on a disk. Each of the above discussedembodiments can be used with conventional modern zone bit recordeddisks. However, many of the above discussed embodiments can be furtheroptimized for use with zone bit recorded disks that include zone bitrecorded servo wedges, as will be described below.

As can be appreciated from FIG. 1, tracks close to the outer diameter ofdisk 110 are much longer than tracks close to the inner diameter.Because there is a limit on the number of bits that can be packed intothe tracks near the inner diameter of a disk, the outer tracks wereconventionally recorded with the same number of sectors by reducingtheir bit density. This under utilized the outer tracks.

To better utilize the outer tracks, modern hard disk drives use zone bitrecording. In zone bit recording, disk capacity is increased through bitdensity management. This is accomplished by dividing each disk intoconcentric circumferential zones and changing the nominal clock rate(i.e., and thus, read and write frequency) as the read/write head(s)moves from one zone to another. Each track within a given zone containsa constant number of data sectors. However, the number of sectors pertrack is different for different zones, with the inner most zoneincluding the fewest sectors and the outermost zone including thegreatest number of sectors. This allows more efficient use of the longertracks near the outer diameter of a disk, permitting more nearly equal areal density of data across the radius of the disk.

FIG. 12 is a plan view of an exemplary rotatable storage disk 110′ thatis zone bit recorded. The disk 110′ is shown as being dividing into fiveconcentric circumferential zones 1210A, 1210B, 1210C, 1210D and 1210E.Each track within a given zone contains a constant number of datasectors. For example, the inner most zone 1210A is shown as includingnine data sectors, and the outer most zone 1210E is shown as includingsixteen data sectors. For ease of illustration, the servo wedges in FIG.12 are simply represented by radial line (e.g., lines 1238A and 1238B).In disk 110′, from zone to zone, there are a different number of servowedges around a track. Also, in disk 110′, each pair of adjacent datasectors is shown as being separated from one another by a servo wedge.However, it is likely that at least some servo wedges will splitdata-sectors (and thus, the number of servo wedges need not be relatedto the number of data sectors). Further, the number of zones, the numberof servo wedges per revolution, and the number of sectors per zone aremerely exemplary. For example, it is more likely that an outer most zonewill include between about 200 to 300 data sectors per track, and aninner most zone will include between about 100 to 150 data sectors pertrack, but of course can be more or less.

Even though most modern disk drives use zone bit recorded disks, moderndisks drives do not use zone bit recorded servo wedges. Rather, moderndisk drives sample at two different frequencies during the same track,one frequency for data fields, and a second frequency for servo wedges.This has been accomplished using two channels, or one channelessentially operating as two channels by switching between servo anddata modes. Thus, even though the frequency associated with the datafields in modern disk drives is dependent on which zone the data fieldis within, the frequency associated with all of the servo wedges is thesame, regardless of which zone the servo wedge is in.

Servo wedges typically include the information that can be used todetermine what frequency to use when demodulating the intermittent datafields. It is believed that a main reason why servo wedges are notcurrently being zone bit recorded is because it is difficult todemodulate a servo wedge unless the appropriate demodulation frequencyis known beforehand. However, there would be many advantages to zone bitrecording the servo wedges. First, the size of a maj ority of the servowedges would be reduced if the servo wedges were zone bit recorded,leaving more room for data fields that store user data. Further,channels, such as partial response maximum likelihood (PRML) channels,would likely operate better because there would be a more nearlyconstant known pulse shape, relative to the channel's sampling, in thewedges. This is in part because with non-zone bit recorded servo wedges,the frequency used to sample servo wedges is constant from the innerdiameter (ID) to the outer diameter (OD) of the disk, causing the samplepulse shapes as observed in time to vary significantly from the ID tothe OD, because of the difference in circumference. Zone bit recordedservo wedges will allow the servo data rate to be scaled with thecircumference, thereby making it easier to achieve the proper pulseshape.

However, despite the advantages that can be achieved by zone bitrecorded servo wedges, the inventor of the present invention is unawareof any scheme that has been successfully commercialized for demodulatingzone bit recorded servo wedges.

FIG. 13 illustrates an embodiment of the present invention that can beused with one or more disks that include zone bit recorded servo wedges.A zone bit recorded disk including zone bit recorded servo wedges mayresemble disk 110′ shown in FIG. 12, where there are a different numberof servo sectors around a track from zone to zone. Alternatively, a zonebit recorded disk including zone bit recorded servo wedges can includethe same number of wedges in each zone, with the circumferentiallocation of each zone bit recorded servo wedge being generally the samefrom zone to zone. Thus, servo wedges in adjacent zones are adjacent oneanother. Further, in this embodiment each zone includes the same numberof servo wedges, with the outer most zone including the most number ofservo wedges and the inner most zone including the least number of servowedges. Other arrangements are of course also possible.

More specifically, FIG. 13 is a high level diagram of an exemplary diskdrive device 1302, which can implement embodiments of the presentinvention. Disk drive device 1302 includes similar elements to thosediscussed above in relation to FIG. 4, and thus, similar numbering isused. However, in disk drive 1302, the read/write channel 413′ includesa pair of servo demodulators 404A and 404B, and a pair of paths 412A and412B. This can alternatively be thought of a pair of channels 413 (e.g.,a channel 413A and a channel 413B).

So long as the zone location (i.e., which zone) of a head is know at afirst point in time, it is relatively easy for the microprocessor tonarrow down which zone the head will be in, at a next point in time, totwo zones. For example, referring back to FIG. 12, if the head 414 isknown to be in (or more specifically, over) the innermost zone 1210Aduring a first point in time t1, it can be predicted that the head 414will either still be in the first zone 1210A or will be in the adjacentsecond (i.e., the next most inner) zone 1210B at a second point in timet2, assuming the difference between times t1 and t2 is sufficientlysmall. For another example, if the head is known to be in the secondzone 1210B during a time t3, and to be moving radially outward from apoint in time t3 to a point in time t4, it can be predicted that thehead 414 is either still within the second zone 1210B or within theadjacent third zone 1210C at time t4, assuming the difference betweentimes t3 and t4 is sufficiently small. The difficulty is in determiningwhich of the two most likely zones the head 414 is actually located.

Referring back to FIG. 13, the microprocessor 410 uses logic or statespace estimation similar to that just described above to narrow down thelocation of the head 414 to two adjacent zones. The microprocessor theninstructs one of the paths and one of the servo demodulators (e.g., 412Aand 404A) to search for a SAM pattern at a first nominal frequency thatcorresponds to one of the two predicted zones; and the other path andservo demodulator (e.g., 412B and 404B) are instructed to search for theSAM pattern at a second nominal frequency that corresponds to the otherone of the two predicted zones. Then, the location of the head 414 (andthe appropriate frequency) is determined based on which servodemodulator is able to detect the SAM pattern, or even better, whichservo demodulator achieves a SAM detection that is characterized as agood SAM detection. For example, if servo demodulator 404A (whileoperating at a first nominal frequency) detects the SAM and it ischaracterized as a good SAM detection, then it is determined that thehead 414 is located over the zone associated with the first nominalfrequency. If servo demodulator 404B (while operating at a secondnominal frequency) detects a SAM that is characterized as a good SAMdetection, then it is determined that the head 414 is located over thezone associated with the second nominal frequency.

Although unlikely (where each servo demodulator is using a differentnominal frequency), if both servo demodulators produce good SAMdetections, then one SAM detection can be characterized as a best goodSAM detection in order to determine the most likely location of the head414 (and the appropriate frequency). Schemes for characterizing a SAMdetection as a good SAM detection or a bad SAM detection, as well asschemes for selecting a best good SAM detection among multiple good SAMdetections, are described in detail above.

In accordance with embodiments of the present invention discussed above,each servo demodulator determines actual servo demodulation values(e.g., a wedge number value, a track number value, a burst value and/ora position error signal) in order to determine whether a detection ofthe SAM pattern should be characterized as a good SAM detection or a badSAM detection. As with embodiments of the present invention discussedabove, these actual servo demodulation values associated with a good SAMdetection (or a best good SAM detection) can then be used for servocontrol. Additionally, the location or detection time of the SAM patterncharacterized as a good SAM detection can be used to predict where orwhen to search for the SAM pattern in a next servo wedge, as describedabove.

It is noted that first and second servo demodulators 404A, 404B, and thefirst and second paths 412A and 412B, need not include all of the samecircuitry. Rather, it is possible that the servo demodulators 404A and404B may share some of the same circuitry, or that one of the servodemodulators includes less circuitry than the other. Similarly, paths412A and 412B may share some circuitry, or one may include lesscircuitry than the other.

It is further noted that there may be some difficulty in demodulating aservo wedge when a head is straddling a boundary between two zones, withhalf the head reading a zone recorded at one frequency and half the headreading another zone recorded at another frequency. At this point theservo wedge may be lost, and a track may be given up.

In each of the zone bit recorded servo wedge embodiments describedabove, if no SAM pattern is detected in a servo wedge, the servodemodulators can search for the SAM pattern again in the next servowedge, using the same nominal frequencies. Alternatively (or aftersearching a few times using the same nominal frequencies), the nominalfrequencies can be changed in order to determine if a head is over adifferent zone than predicted.

Further Embodiments with Multiple Servo Demodulators

In the embodiments of the present invention just described above, a pairof servo demodulators 404A and 404B, and a pair of paths 412A and 412Bare used to determine which of the two most likely zones the head 414 isactually located. Such embodiments are most useful when the head 414 isnear a boundary between two adjacent zones (or more specifically, when azone bit recorded servo wedge that the head 414 is attempting to read isnear the boundary between two adjacent zones). However, there will beoccasions where there is high confidence as to which zone the head 414is located, and thus, that there would be no need to search for a SAMpattern using two different nominal frequencies. For example, when thehead 414 is deep within (e.g., near a center of) a zone at a first pointin time, it is relatively easy from the microprocessor 410 to have highconfidence that the head 414 will still be within the same zone at asecond point in time, assuming the difference between times isrelatively small. During such occasions, the disk drive device 1302 canuse the extra servo demodulator 404B and path 412B for something otherthan searching for the SAM pattern at the nominal frequency associatedwith one of the adjacent zones. In other words, embodiments of thepresent invention make good use of the additional servo demodulationcapability for those times when there is high confidence about whichzone the head 414 is located. Such embodiments are now discussed below.

Each servo demodulator 404A and 404B (and corresponding read/write path412A and 412B) can be thought of as using a set of servo demodulationparameters when searching for a SAM pattern. Such servo demodulationparameters can include channel control values, such as servo AGC andservo PLL values, which are discussed above. Servo AGC values can begain values (e.g., starting values or update values), filter coefficientvalues, filter accumulation path values, etc., as mentioned above. Aservo PLL value can be, for example, a starting PLL frequency value or aPLL update value. Other examples of servo demodulation parametersinclude, but are not limited to, bit-detection threshold, SAM confidencethreshold and finite impulse response (FIR) filter coefficient values. Abit-detection threshold value specifies the threshold used todistinguish between a data “1” and a data “0”. A SAM confidencethreshold value specifies the threshold used to help characterizewhether a detection of a SAM pattern should be characterized as a goodor bad SAM detection. A confidence determination (e.g., that is comparedto a SAM confidence threshold) can be based, for example, on the numberof matched (or mis-matched) bits in a demodulated bit pattern. Anotherexample of a servo demodulation parameter is the nominal frequency thatis used to search for a SAM pattern.

Because each servo demodulator 404A and 404B (and correspondingread/write path 412A and 412B) can use its own set of servo demodulationparameters when searching for a SAM pattern, the set of servodemodulation parameters used by servo demodulator 404A and read/writepath 412A can be different than the set of servo demodulation parametersused by servo demodulator 404B and read/write path 412B. That is, inaccordance with an embodiment of the present invention, servodemodulator 404A searches for a SAM pattern using a first set of servodemodulation detection parameters, while servo demodulator 404B searchesfor the SAM pattern using a second set of servo demodulation parameters,where at least one servo demodulation parameter in the second set isdifferent than a corresponding parameter in the first set. If one of theservo demodulators 404A, 404B detects the SAM pattern, the servodemodulator detecting the SAM determines at least one actual servodemodulation value corresponding to the detection of the SAM pattern andthen the microprocessor 410 can use the actual servo demodulationvalue(s) associated with a SAM detection for servo control. Inaccordance with an embodiment of the present invention, themicroprocessor 410 characterizes a detection of the SAM pattern as agood SAM detection or a bad SAM detection, as explained in detail above.The actual servo demodulation value(s) associated with a good SAMdetection can then be used for servo control. If both servo demodulators404A and 404B produce a good SAM detection, then the microprocessor 410selects a best good SAM detection, as explained in detail above, and theactual servo demodulation value(s) corresponding to the best good SAMdetection can then be used for servo control.

As just explained above, a pair of servo demodulators 404A and 404B arevery useful where the servo wedges of a disk are zone bit recorded.However, embodiments of the present invention are also directed to diskdrive devices that include two or more servo demodulators 404, whetheror not the servo wedges are zone bit recorded. Additionally, even thoughthe embodiments described above have focused on the inclusion and use ofa pair of servo demodulators 404, embodiments of the present inventionare also directed to disk drive devices that include more than two servodemodulators 404 and read/write paths 412. Benefits of using a pluralityof servo demodulators include the ability to simultaneously demodulate aservo wedge using different servo demodulation parameters, therebyincreasing the probability that a good SAM detection will occur, andthus, thereby improving servo-demodulation robustness.

While various embodiments of the present invention have been describedabove, it should be understood that they have been presented by way ofexample, and not limitation. It will be apparent to persons skilled inthe relevant art that various changes in form and detail can be madetherein without departing from the spirit and scope of the invention.

The present invention has been described above with the aid offunctional building blocks illustrating the performance of specifiedfunctions and relationships thereof. The boundaries of these functionalbuilding blocks have often been arbitrarily defined herein for theconvenience of the description. Alternate boundaries can be defined solong as the specified functions and relationships thereof areappropriately performed. Any such alternate boundaries are thus withinthe scope and spirit of the claimed invention.

The breadth and scope of the present invention should not be limited byany of the above-described exemplary embodiments, but should be definedonly in accordance with the following claims and their equivalents.

1. A method for use with a disk including zone bit recorded servowedges, comprising: (a) searching for a SAM pattern, within a servowedge, at a first nominal frequency useful for searching for the SAMpattern if the servo wedge is within a first zone; and (b) searching forthe SAM pattern, within the same servo wedge, at a second nominalfrequency useful for searching for the SAM pattern if the servo wedge iswithin a second zone.
 2. The method of claim 1, wherein: the firstnominal frequency corresponds to the first zone; and the second nominalfrequency corresponds to the second zone, which is adjacent to the firstzone.
 3. The method of claim 1, wherein steps (a) and (b) occursimultaneously.
 4. The method of claim 1, further comprising: (c)selecting one detection of the SAM pattern, if the SAM pattern is foundat both the first nominal frequency and the second nominal frequency inthe same servo wedge.
 5. The method of clam 4, wherein: step (a)includes, if the SAM pattern is detected at the first nominal frequency,then determining at least one actual servo demodulation valuecorresponding to a detection of the SAM pattern at the first nominalfrequency; step (b) includes, if the SAM pattern is detected at thesecond nominal frequency, then determining at least one actual servodemodulation value corresponding to the detection of the SAM pattern atthe second nominal frequency; and step (c) includes selecting onedetection of the SAM pattern based at least in part on the actual servodemodulation values determined at steps (a) and (b), if the SAM patternis found at both the first nominal frequency and the second nominalfrequency in the same servo wedge.
 6. The method of claim 1, furthercomprising: (c) determining which one of two zones a head is reading,based at least in part on which nominal frequency was used tosuccessfully detect the SAM pattern in one of steps (a) and (b).
 7. Themethod of claim 1, further comprising: (c) determining which one of twozones is being read, based at least in part on which nominal frequencywas used to successfully detect the SAM pattern in one of steps (a) and(b).
 8. A method for use with a disk including zone bit recorded servowedges, comprising: (a) searching for a SAM pattern, within a servowedge, at a first nominal frequency useful for searching for the SAMpattern if the servo wedge is within a first zone, and at a secondnominal frequency useful for searching for the SAM pattern if the servowedge is within a second zone; (b) for each detection of the SAM patternin the servo wedge, charactering the detection as a good SAM detectionor a bad SAM detection; and (c) if a detection of the SAM pattern ischaracterized as a good SAM detection, then performing further servofunctions based at least in part on the detection of the SAM patternthis is characterized as the good SAM detection.
 9. The method of claim8, wherein step (c) includes using at least one servo demodulation valuecorresponding to the good SAM detection for servo control.
 10. Themethod of claim 8, wherein step (c) includes searching for the SAMpattern in a next servo wedge based at least in part on when or wherethe SAM pattern, corresponding to the good SAM detection, was detected.11. The method of claim 8, wherein step (c) includes: using a servodemodulation value corresponding to the good SAM detection for servocontrol; and searching for the SAM pattern in a next servo wedge basedat least in part on when or where the SAM pattern, corresponding to thegood SAM detection, was detected.
 12. The method of claim 8, wherein ifmore than one detection of the SAM pattern in the servo wedge ischaracterized as a good SAM detection, then step (c) includes: selectingone of the detections as the best good SAM detection; and performingfurther servo functions based at least in part on the best good SAMdetection.
 13. The method of claim 12, wherein step (c) includessearching for the SAM pattern in a next servo wedge based at least inpart on when or where the SAM pattern, corresponding to the best goodSAM detection, was detected.
 14. The method of claim 12, wherein step(c) includes: using a servo demodulation value corresponding to the bestgood SAM detection for servo control; and searching for the SAM patternin the next servo wedge based at least in part on when or where the SAMpattern, corresponding to the best good SAM detection, was detected. 15.The method of claim 8, further comprising: (d) if the SAM pattern in notdetected in the servo wedge, then searching for the SAM pattern in anext servo wedge based at least in part on when or where a detection ofthe SAM pattern, that was characterized as a good SAM detection,occurred in a previous servo wedge.
 16. The method of claim 8, furthercomprising: (d) if two of the SAM patterns are detected in the sameservo wedge, but only one detection of the SAM pattern in the servowedge is characterized as a good SAM detection, then searching for theSAM pattern in a next servo wedge based at least in part on where orwhen the SAM pattern, that was characterized as the one good SAMdetection, was detected.
 17. The method of claim 8, further comprising:(d) if no detection of the SAM pattern in the servo wedge ischaracterized as a good SAM detection, then searching for the SAMpattern in a next servo wedge based at least in part on when or wherethe SAM pattern, that was characterized as a good SAM detection, wasdetected in a previous servo wedge.
 18. The method of claim 8, furthercomprising: (d) if no detection of the SAM pattern in the servo wedge ischaracterized as a good SAM detection, then halting reading data fromand writing data to data fields following the servo wedge.
 19. Themethod of claim 18, further comprising: (e) if no detection of the SAMpattern in the servo wedge is characterized as a good SAM detection,then searching for the SAM pattern in a next servo wedge based at leastin part on when or where the SAM pattern, that was characterized as agood SAM detection, was detected in a previous servo wedge.
 20. Themethod of claim 8, wherein step (b) includes comparing at least oneactual servo demodulation value corresponding to each detection of theSAM pattern to at least one predicted servo demodulation value tocharacterize each detection as either a good SAM detection or a bad SAMdetection.
 21. A method for improving servo-demodulation robustness,comprising: simultaneously searching for a servo address mark (SAM)pattern, within a same servo wedge, using a plurality of differentnominal frequencies.
 22. The method of claim 21, wherein the servo wedgeis zone bit recorded.
 23. The method of claim 21, wherein the pluralityof nominal frequencies comprise two nominal frequencies.
 24. The systemof claim 21, wherein the plurality of nominal frequencies comprise morethan two nominal frequencies.